package demo.binarytree;

import lombok.Setter;

@Setter
class BinaryTree {
    /**
     * 根节点
     */
    HeroNode root;

    /**
     * 前序遍历：先输出父节点，再遍历左子树和右子树
     */
    public void preOrder() {
        if (this.root != null) {
            this.root.preOrder();
        } else {
            System.out.println("二叉树为空，无法遍历");
        }
    }

    /**
     * 中序遍历：先遍历左子树，再输出父节点，再遍历右子树
     */
    public void infixOrder() {
        if (this.root != null) {
            this.root.infixOrder();
        } else {
            System.out.println("二叉树为空，无法遍历");
        }
    }

    /**
     * 后序遍历：先遍历左子树，再遍历右子树，最后输出父节点
     */
    public void postOrder() {
        if (this.root != null) {
            this.root.postOrder();
        } else {
            System.out.println("二叉树为空，无法遍历");
        }
    }
}
